查看原文
其他

HR妹纸说:小哥哥,你搭建的这个公共wifi分享神器不错哟!我脸红了~

D哥 Java面试那些事儿 2022-04-29

大家好,我是D哥

点击关注下方公众号,Java面试资料 都在这里

社恐的朋友每到一个人多的新地方是不是都感觉只想低头玩自己的呢?这时候如果流量不够,但是又不想开口向别人询问WiFi 名称和密码怎么办呢?不用担心,不社交也能轻松上网~



今天,跟大家推荐一款曾霸榜 GitHub 的开源工具:WiFi Card,目前star 5.2k。有没有发现名字听起来就很WiFi!



这款工具的神奇作用:快速把 WiFi 名称和密码,快速转成二维码,只要扫描一下就可以快速连上 WiFi了!说实话,跟小米、华为等国内安卓机的WiFi分享功能有点类似(见下图)




目前,已支持多国语言,密码可以选择暴露或隐藏,界面也支持定制,用了都是真香~


其实技术上的实现原理也很简单,打开package.json,咱们就可以发现它依赖了开源组件:qrcode.react,主要用于生成二维码,开源地址:https://github.com/zpao/qrcode.react



接着,咱们再打开该项目的 Card.js 文件,我们可以看到下方这样一行代码:



其具体作用,是将如下格式的一段文本,转化为二维码:

WIFI:T:{加密模式};S:{WiFi 名称};P:{WiFi 密码};;

上面文本共对应三个可置换变量,加密模式、WiFi 名称、WiFi 密码。


而加密模式,主要支持 nopass、WPA、WEP 这三种加密类型。正常来说,现在家里大多数路由器,都进行了 WPA-PSK/WPA2-PSK 加密,也即是 WPA 类型。


因此,假设我要分享一个 WiFi 名称为 java,密码为 12345678,加密方式为 WPA-PSK/WPA2-PSK 的信息给朋友,只需要将以下这段文本,转化为二维码即可:

WIFI:T:WPA;S:java;P:12345678;;

将文本转二维码的开源库有很多,如果是js的话,我们一般会首选qrcode,如果是java语言的话,咱们一般都会选择zxing来生成二维码,也是一款开源项目哈,地址:https://github.com/zxing/zxing ,都能帮你快速生成二维码图片,集成也简单便捷。


在知道上述基本原理之后,我们自己就能搭建一个 WiFi 生成器了。


该开源项目还为咱们搞好了docker,直接搭建即可。



在线体验:https://wificard.io/



除了避免自己尴尬,也可以防止别人尴尬,因为你可以把生成的 WiFi 二维码图贴在显眼的地方,别人就不会来麻烦你了,社恐福音!


虽说目前国内主流 Android 机的内置系统都自带了 WiFi 分享功能,不过,从 WiFi Card 这个开源项目里面,我们还是可以学到不少知识的。


献上项目地址,感兴趣的朋友可试一下~


GitHub:https://github.com/bndw/wifi-card/


好了,到这里,不少同学应该知道了它背后的实现原理了,那么,D哥在这里建议还没有工作经验的同学,自己用Java语言重新实现一下,写得过程中遇到什么问题,可以私信D哥,或者在咱们的技术群里交流哈。


技术交流群


最后,D哥也建了一个技术群,主要探讨一些新的技术和开源项目值不值得去研究及IDEA使用的“骚操作”,有兴趣入群的同学,可长按扫描下方二维码,一定要备注:城市+昵称+技术方向,根据格式备注,可更快被通过且邀请进群。


▲长按扫描


热门推荐:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存